package com.lframework.xingyun.basedata.mappers;

import com.lframework.starter.web.core.mapper.BaseMapper;
import com.lframework.xingyun.basedata.dto.product.ProductBundleDto;
import com.lframework.xingyun.basedata.entity.Product;
import com.lframework.xingyun.basedata.entity.ProductBundle;

import java.util.List;

/**
 * <p>
 * 组合商品 Mapper 接口
 * </p>
 *
 * @author zmj
 * @since 2023-05-26
 */
public interface ProductBundleMapper extends BaseMapper<ProductBundle> {
    /**
     * 根据组合商品ID查询
     * @param mainProductId
     * @return
     */
    default List<ProductBundleDto> selectDtoByMainProductId(String mainProductId) {
        return defaultJoinWrapper()
                .selectAll(ProductBundle.class)
                .selectAssociation(Product.class, ProductBundleDto::getProduct)
                .leftJoin(Product.class, Product::getId, ProductBundle::getProductId)
                .eq(ProductBundle::getMainProductId, mainProductId)
                .list(ProductBundleDto.class);
    }

}
